/*
* @Author: Choisaaaa
* @Date: 2018/5/6  0:01
* ES6 箭头函数
*/
//---------------------4.箭头函数--------------------------------------------------
/**
 * 语法 ： 参数=>表达式/语句
 * 继承外层作用域（没有this指针）
 * 不能用作构造函数
 * 没有prototype属性
 */
// -----------------1.箭头函数定义
let value = 2;
let double = x => 2 * x;
let treble = x => {
    return 3 * x;
}
console.log('double:', double(value));
console.log('treble:', treble(value));

//--------------- 2.没有独立作用域
var obj = {
    commonFn : function(){
        console.log(this);
    },
    arrowFn : () => {
        console.log(this);
    }
}
obj.commonFn();// this 指向obj作用域
obj.arrowFn(); // this 指向了obj所在作用域，window

// --------------3.不能用做构造函数
let Animal = function(){

}
let animal = new Animal();//animal

let Animal = () => {

}
let animal = new Animal();//VM1883:4 Uncaught TypeError: Animal is not a constructorat <anonymous>:4:14

// 没有prototype
let commonFn = function(){};
let arrowFn  = () => {};

console.log(commonFn.prototype);
console.log(arrowFn.prototype);

